;:poke56,128:clr
;:sys36864
	;.opt oo
	*= 32768
vicinit	=$ff81
tmp	=2
tmp2	=tmp+2
bsout	=$ffd2
konf	=1
page	=$288
vic	=$d000
ciapage	=$dd00
vicpage	=vic+24
cr	=13
plus05	=$b849
memmult	=$ba28
facasc	=$bddf
int	=$bccc
text	=$c000
afac	=$bc3c
ay01	=$bf0c
setcr	=$e50c
getin	=$ffe4
crs1	=$cc
crs2	=$cf
crs3	=$cd
stack	=$c100
spalte	=$d3
zeile	=$d6
space	=$ab3f
axout	=$bdcd
clrx	=$e9ff
clrscr	=$e544
farbe	=646
farbram	=$ea24
farb	=$f3
calc	=$e9f0
return	=$aad7
rvs	=199
setc	=58732
open	=$ffc0
setpar	=$ffba
setnam	=$ffbd
close	=$ffc3
chkout	=$ffc9
chkin	=$ffc6
clrchn	=$ffcc
key	=198
latch	=$c100
stat	=$90
latch2	=$c200
repflg	=$28a
run	jmp main
chrsatz	=*
	.byt 100
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %00010000
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt 114
	.byt %00000000
	.byt %00100000
	.byt %01100000
	.byt %11111100
	.byt %11111100
	.byt %01101100
	.byt %00101100
	.byt %00001100
	.byt 96
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %01100110
	.byt %00111100
	.byt 112
	.byt %01100110
	.byt %00011000
	.byt %00111100
	.byt %01100110
	.byt %01111110
	.byt %01100110
	.byt %01100110
	.byt %00000000
	.byt 120
	.byt %01100110
	.byt %00000000
	.byt %01100110
	.byt %01100110
	.byt %01100110
	.byt %01100110
	.byt %00111100
	.byt %00000000
	.byt 121
	.byt %01100110
	.byt %00000000
	.byt %00111100
	.byt %01100110
	.byt %01100110
	.byt %01100110
	.byt %00111100
	.byt %00000000
	.byt 107
	.byt %00000011
	.byt %00000110
	.byt %00001100
	.byt %00001100
	.byt %00001100
	.byt %00000110
	.byt %00000011
	.byt %00000000
	.byt 115
	.byt %11000000
	.byt %01100000
	.byt %00110000
	.byt %00110000
	.byt %00110000
	.byt %01100000
	.byt %11000000
	.byt %00000000
	.byt 124
	.byt %00111100
	.byt %01000010
	.byt %10011001
	.byt %10100001
	.byt %10100001
	.byt %10011001
	.byt %01000010
	.byt %00111100
	.byt 113
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %00000000
	.byt %11111111
	.byt 108
	.byt %11111111
	.byt %11111111
	.byt %11111111
	.byt %11111111
	.byt %11111111
	.byt %11111111
	.byt %11111110
	.byt %11111100
	.byt 123
	.byt %11111111
	.byt %11111111
	.byt %11111100
	.byt %11111100
	.byt %11111111
	.byt %11111111
	.byt %01111111
	.byt %00111111
	.byt 127
	.byt %11111100
	.byt %11111110
	.byt %11111111
	.byt %11111110
	.byt %11111110
	.byt %11111110
	.byt %11111110
	.byt %11111111
	.byt 126
	.byt %00111111
	.byt %01111111
	.byt %11111111
	.byt %01111111
	.byt %01111111
	.byt %01111111
	.byt %01111111
	.byt %11111111
	.byt 0
hello	.byte "\x13\x97\x08\x12\x19\x07 disk - mailbox  v2.o/1992\x19\x07 \x1a\x90O\x19%\xb7P\x1a"
	.byte "\xb4\x19%\x1d\xaa\x1a\xb4\x19%\x1d\xa7\x1a"
	.byte "\xb4\x19%\x1d\xaa\x1a"
	.byte "\xb4\x19%\x1d\xaa\x1a"
	.byte "\xb4\x19%\x1d\xaa\x1aL\x19%\xaf\xba\x1a\x12\x97\x19' \x1a"
	.byt 0
cop	.byte "\x1a\x97von n. heusler\x19\x0a \xbc nh o2.92"
	.byte "\x1a\x19\x04 zwengauerweg 18"
	.byte "\x1a\x19\x04 8ooo m\xb8nchen 71"
	.byte "\x19\x05 \x12 f1 \x92\x91\x9d\x9d\x9d\x9d\xb1\xb1\xb1\xb1\x11 -> men\xb8"
	.byt 0
men	.byte "\x92\x97\x91\x19'\xb1\x1a\x12options   disk      in/out    weiter   \x1a"
	.byte "\x19\x0a\x11w\xb0hlen mit den crsr tasten, best\xb0tigen"
	.byte "\x1amit \x12return\x92."
	.byt 0
me2	.byte "\x18 directory \x18 befehl\x19\x04 \x18 status\x19\x04 \x18 _\xc0\x19\x08 "
	.byt 0
me3	.byte "\x18 lesen\x19\x05 \x18 schreiben \x18 vergl.\x19\x04 \x18 drucken"
	.byte "   \x18 leertest  \x18 _\xc0\x19\x08 "
	.byt 0
me1	.byte "\x18 ende\x19\x06 \x18 neustart  \x18 l\xb9schen   \x18 ersetzen"
	.byte "  \x18 devicenr. \x18 schrifts. \x18 cursor\x19\x04 \x18 _\xc0\x19\x08 "
	.byt 0
direct	.byt "#"
user	.byte "ux 3 0 18 0"
	.byt 0
point	.byte "b-p 3 171"
	.byt 0
i0	.byte "i0"
dirnam	.byte "$0"
please	.byte "\x1a  \x98weiter mit taste!"
	.byt 0
surt	.byte "\x1a\x98sind sie sicher? j/n"
	.byt 0
bet	.byte "\x1a\x98disk befehl: \x97"
	.byt 0
det	.byte "\x1a\x98bitte nr. einstellen mit \x12+\x92,\x12-\x92,\x12return\x1a\x11"
	.byt 0
uewa	.byte "\x1a\x91\x98 nr.:\x19\x08 \x19\x07\x9d\x97"
	.byt 0
wei	.byte "\x1a\x97     weiter mit \x12stop\x92 oder \x12return"
	.byt 0
ers1	.byte "\x1a\x98suchen nach?    \x97"
	.byt 0
ers2	.byte "\x1a\x98ersetzen durch? \x97"
	.byt 0
setset	.byte "\x98welchen schriftsatz?"
	.byte "\x1a\x11 \x121\x92 gross/grafik\x1a \x122\x92 klein/gross"
	.byt 0
auch	.byte "\x1a\x98auch disk-daten drucken? j/n"
	.byt 0
dd1	.byte "\x1a\x1adisk - name: "
	.byt 0
dd2	.byte "\x1a         id: "
	.byt 0
dd3	.byte "\x1a         os: "
	.byt 0
ins	.byte "\x1a\x98 --- diskette einlegen ---"
	.byt 0
cut	.byte "\x1a\x98cursor automatisch nach rechts? j/n"
	.byt 0
vt1	.byte "\x11\x98\x1a\x19\x04 gleich:  \x97"
	.byt 0
vt2	.byte "\x98\x1a\x19\x04 versch.: \x97"
	.byt 0
kei	.byte "\x97keine "
	.byt 0
wol	.byte "\x98daten vorhanden !"
	.byt 0
diskette	.byte "\x13\x1a\x11\x19$\x1d\xac\xbb\x11\x9d\x9d\xbf\xbe"
	.byt 0
flp	.byt $81,$16,$96,$96,$97
mal17	.byt 0,17,34,51,68
metze	.word me1,me2,me3
max	.byt 7,3,5
mm1	.word prgend,neustart,loesch,replace,dev,satz,cursor
mm2	.word cat,befehl,status
mm3	.word lese,schr,vergl,druck,leertest
my	.word mm1,mm2,mm3
spa	.byt 0
zei	.byt 0
sp	.byt 0
flg	.byt 0
wert	.byt 0
stspa	.byt 0
wert2	.byt 0
maxlen	.byt 0
device	.byt 8
dirline	.byt 0
cuflag	.byt 0
vf1	.byt 0
vf2	.byt 0
chrset	sei
	lda #49
	sta konf
	ldy #0
	sty tmp
	sty tmp2
	ldx #8
set	lda #0
	sta tmp+1
	lda #$e0
	sta tmp2+1
copychar	lda (tmp),y
	sta (tmp2),y
	iny
	bne copychar
	inc tmp+1
	inc tmp2+1
	dex
	bne copychar
	lda #55
	sta konf
	cli
	lda #24
	sta vicpage
	lda #$f8
	sta ciapage
	lda #196
	sta page
	lda #<chrsatz
	ldy #>chrsatz
	sta tmp
	sty tmp+1
zeichlp	ldy #0
	lda (tmp),y
	beq fnshch
	sty tmp2+1
	asl
	rol tmp2+1
	asl
	rol tmp2+1
	asl
	rol tmp2+1
	sta tmp2
	lda tmp2+1
	clc
	adc #$e0
	sta tmp2+1
chcp	iny
	lda (tmp),y
	dey
	sta (tmp2),y
	eor #-1
	pha
	lda tmp2+1
	clc
	adc #4
	sta tmp2+1
	pla
	sta (tmp2),y
	lda tmp2+1
	sec
	sbc #4
	sta tmp2+1
	iny
	cpy #8
	bcc chcp
	lda tmp
	clc
	adc #9
	sta tmp
	lda tmp+1
	adc #0
	sta tmp+1
	bcc zeichlp
fnshch	rts
strout	tax
	lda tmp
	pha
	lda tmp+1
	pha
	stx tmp
	sty tmp+1
	ldy #0
str	ldy #0
	lda (tmp),y
	beq strend
	cmp #"\x1a"
	bne noz
	lda #cr
noz	cmp #"\x19"
	beq repeat
	cmp #"\x18"
	beq spalt
	jsr bsout
next	inc tmp
	bne str
	inc tmp+1
	bne str
repeat	iny
	lda (tmp),y
	tax
	iny
	lda (tmp),y
rept	dex
	bmi repend
	jsr bsout
	bcc rept
repend	lda tmp
	clc
	adc #3
	sta tmp
	lda tmp+1
	adc #0
	sta tmp+1
	bne str
spalt	jsr return
	ldy stspa
	ldx zeile
	jsr setcr
	lda #1
	sta rvs
	jmp next
strend	pla
	sta tmp+1
	pla
	sta tmp
	rts
clr	lda #<hello
	ldy #>hello
	jsr strout
	lda #0
	ldx #84
clp	sta text,x
	dex
	bpl clp
	jmp show
free	jsr savecr
	ldx #85
	stx tmp
	lda #11
	sta farbe
frlp	dex
	bmi fren
	lda text,x
	beq frlp
	dec tmp
	jmp frlp
fren	lda tmp
	jsr afac
	lda #<flp
	ldy #>flp
	jsr memmult
	jsr plus05
	jsr int
	jsr facasc
	lda #0
	sta $103
	lda $101
	bne no101
	lda $100
	sta $102
	lda #" "
	sta $100
	sta $101
no101	lda $102
	bne no102
	lda $101
	sta $102
	lda $100
	sta $101
	lda #" "
	sta $100
no102	ldx #2
	ldy #1
	jsr setcr
	jsr ay01
	jsr strout
	lda #"%"
	jsr bsspa
	jsr space
	jmp loadcr
savecr	ldx sp
	lda spalte
	sta stack,x
	lda zeile
	sta stack+1,x
	inc sp
	inc sp
	rts
loadcr	dec sp
	dec sp
	ldx sp
	lda stack,x
	tay
	lda stack+1,x
	tax
	jmp setcr
pos	jsr savecr
	ldy #1
	ldx #4
	jsr setcr
	lda #12
	sta farbe
	lda #"s"
	jsr bsspa
	ldx spa
	dec farbe
	jsr x0out
	jsr space
	inc farbe
	ldy #1
	ldx #5
	jsr setcr
	lda #"z"
	jsr bsspa
	dec farbe
	ldx zei
	jsr x0out
	jmp loadcr
bsspa	jsr bsout
	jmp space
get	lda #0
	sta crs1
wk	jsr getin
	beq wk
	pha
	lda #2
	sta crs3
wc	lda crs2
	bne wc
	lda #1
	sta crs1
	pla
	rts
calcpos	ldx zei
	lda mal17,x
	clc
	adc spa
	tax
	rts
clrmen	ldx #9
cl1	jsr clrx
	inx
	cpx #25
	bcc cl1
	ldx #10
	lda #12
	sta farbe
setzei	ldy #0
	jmp setcr
getjn	lda #0
	sta key
jn	jsr getin
	cmp #"j"
	beq jja
	cmp #"n"
	bne jn
	clc
	rts
jja	sec
	rts
insert	jsr disk1
	jsr clrmen
	lda #<ins
	ldy #>ins
	jsr strout
	jmp gettaste
diropen	jsr insert
	ldx device
	lda #3
	ldy #0
	jsr setpar
	lda #2
	ldx #<dirnam
	ldy #>dirnam
	jsr setnam
	jmp open
priopen	ldx #4
	lda #3
	ldy #0
	jsr setpar
	lda #0
	jsr setnam
	jmp open
home	ldy #0
	sty zei
	sty spa
setcur	lda spa
	clc
	adc #11
	tay
	ldx zei
	inx
	inx
	jmp setcr
unhome	ldy #4
	sty zei
	ldy #16
	sty spa
	bne setcur
init	jsr vicinit
	lda #0
	sta sp
	sta flg
	lda #15
	sta vic+32
	sta vic+33
	lda #128
	sta repflg
	jsr setbig
	jsr clrscr
	jsr clr
	jsr cloall
disk0	lda #12
	.byt $2c
disk1	lda #1
	sta farbe
	jsr savecr
	lda #<diskette
	ldy #>diskette
	jsr strout
	jmp loadcr
incol11	lda #11
	ldy #39
goon2	sta 55696,y
	sta 55656,y
	dey
	bpl goon2
	rts
incol11a	lda #11
incol	ldy #39
goon2a	sta (farb),y
	dey
	bpl goon2a
	rts
test	cmp #32
	bcc steuerz
	cmp #128
	bcc zeichen
	cmp #160
	bcc steuerz
zeichen	clc
	rts
steuerz	sec
	rts
show	jsr savecr
	ldx #1
	stx zeile
	dex
	lda #6
	sta farbe
sl	ldy #4
	txa
	cmp #85
	bcs fit
sll	cmp mal17,y
	beq sie
	dey
	bpl sll
	bmi nc
sie	stx tmp
	inc zeile
	lda #11
	sta spalte
	jsr setc
	ldx tmp
nc	lda text,x
	jsr test
	bcc uk
	lda #"\xa4"
uk	jsr bsout
	inx
	bne sl
fit	jsr free
	jmp loadcr
gettaste	lda #<please
	ldy #>please
	jsr strout
	lda #0
	sta key
gh	lda key
	beq gh
	lda #0
	sta key
	jsr bup
	ldx zeile
	jsr clrx
	inx
	jmp clrx
bup	lda #"\x91"
	jmp bsout
getsure	jsr clrmen
	lda #<surt
	ldy #>surt
	jsr strout
	jmp getjn
inform	ldx #0
if	stx tmp
	jsr get
	ldx tmp
	jsr test
	bcc chr
	cmp #cr
	beq eoi
	cmp #20
	bne if
	cpx #0
	beq if
	dex
	jsr bsout
	bcc if
eoi	lda #0
	sta latch,x
	rts
chr	cpx maxlen
	bcs if
	sta latch,x
	jsr bsout
	inx
	bne if
main	jsr init
edit	jsr clrmen
	lda #<cop
	ldy #>cop
	jsr strout
	jsr home
editloop	jsr free
	jsr pos
	lda #1
	sta farbe
	jsr get
	ldx #6
	stx farbe
	jsr test
	bcs steuern
	jmp qzeichen
steuern	cmp #"\x13"
	bne no1
	jsr home
	jmp editloop
no1	cmp #"\x93"
	bne no2
	jsr unhome
	jmp editloop
no2	cmp #"\x11"
	bne no3
down	lda zei
	cmp #4
	bcs du1
	inc zei
crsr	jsr setcur
	jmp editloop
du1	lda #0
	sta zei
	beq crsr
no3	cmp #"\x91"
	bne no4
up	lda zei
	beq du2
	dec zei
	bpl crsr
du2	lda #4
	sta zei
	bne crsr
no4	cmp #"\x1d"
	bne no5
right	lda spa
	cmp #16
	bcs retu
	inc spa
	bne crsr
retu	lda #0
	sta spa
	beq down
no5	cmp #"\x9d"
	bne no6
	lda spa
	beq du3
	dec spa
	bpl crsr
du3	lda #16
	sta spa
	bne up
no6	cmp #13
	beq retu
	cmp #cr+128
	bne no7
	lda #-1
	sta flg
	lda #"\xb2"
	bne qzeichen
no7	cmp #"\x85"
	bne no8
	jmp menue0
no8	cmp #20
	bne no9
	lda spa
	beq du4
	dec spa
	bpl crsr2
du4	lda #16
	sta spa
	lda zei
	beq du5
	dec zei
	bpl crsr2
du5	lda #4
	sta zei
crsr2	jsr calcpos
	lda #0
	sta text,x
	jsr setcur
	lda #"\xa4"
	jsr bsout
	bcc auto
no9	jmp editloop
qzeichen	pha
	jsr bsout
	jsr calcpos
	pla
	sta text,x
	lda flg
	bne rs
	lda cuflag
	bne auto
	jmp right
rs	lda #0
	sta flg
	jmp retu
auto	lda #"\x9d"
	jsr bsout
	jmp editloop
menue0	lda #3
	sta wert
menue	jsr disk0
	jsr clrmen
	lda #<men
	ldy #>men
	jsr strout
	ldx #10
	ldy #15
	jsr setcr
	lda #1
	sta rvs
	lda #"\xab"
	jsr bsout
	ldx device
	jsr x0out
	lda #"\xb3"
	jsr bsout
men1	lda wert
	asl
	asl
	asl
	adc wert
	adc wert
	sta stspa
	tay
	lda #12
	ldx #8
colin	sta 55696,y
	sta 55656,y
	iny
	dex
	bpl colin
me	jsr getin
	cmp #cr
	beq wahl
	cmp #"\x11"
	beq wahl
	cmp #"\x1d"
	beq mep
	cmp #"\x9d"
	bne me
	dec wert
	bpl goon
	lda #3
	sta wert
goon	jsr incol11
	bmi men1
mep	inc wert
	lda wert
	cmp #4
	bcc goon
	lda #0
	sta wert
	beq goon
wahl	jsr incol11
	lda wert
	cmp #3
	bne menwahl
	jmp edit
menwahl	ldy #0
	ldx #10
	jsr setcr
	lda wert
	asl
	tax
	lda metze+1,x
	tay
	lda metze,x
	jsr strout
	ldx wert
	lda max,x
	sta wert2
	sta tmp
men2	lda wert2
	clc
	adc #11
	tax
	jsr calc
	jsr farbram
	lda #12
	jsr incol
m1	jsr getin
	cmp #cr
	beq wahl2
	cmp #"\x91"
	beq mem
	cmp #"\x1d"
	beq qmenue
	cmp #"\x9d"
	beq qmenue
	cmp #"\x11"
	bne m1
	inc wert2
	lda tmp
	cmp wert2
	bcs goon3
	lda #0
	sta wert2
goon3	jsr incol11a
	bmi men2
mem	dec wert2
	bpl goon3
	ldx wert
	lda max,x
	sta wert2
	bne goon3
wahl2	lda tmp
	cmp wert2
	bne wm
	lda #1
qmenue	sta 631
	lda #1
	sta 198
	jmp menue
wm	lda wert
	asl
	tax
	lda my+1,x
	sta tmp+1
	lda my,x
	sta tmp
	lda wert2
	asl
	tay
	lda (tmp),y
	sta jump+1
	iny
	lda (tmp),y
	sta jump+2
	jsr return
jump	jsr 0
	jmp menue
prgend	pla
	pla
	lda #4
	sta page
	lda #$97
	sta ciapage
	jmp vicinit
neustart	pla
	pla
	jmp run
diskmach	lda #15
	ldx device
	tay
	jsr setpar
	lda #2
	ldx #<i0
	ldy #>i0
	jsr setnam
	jsr open
	lda #3
	tay
	ldx device
	jsr setpar
	lda #1
	ldx #<direct
	ldy #>direct
	jsr setnam
	jmp open
senduser	sta user+1
	jsr out15
	lda #<user
	ldy #>user
	jsr strout
	jsr clrchn
	jsr out15
	lda #<point
	ldy #>point
	jsr strout
	jmp clrchn
out15	ldx #15
	jmp chkout
in15	ldx #15
	jmp chkin
in3	ldx #3
	jmp chkin
out3	ldx #3
	jmp chkout
cloall	jsr clrchn
	lda #3
	jsr close
	lda #15
	jmp close
open15	lda #15
	ldx device
	tay
	jsr setpar
	lda #0
	jsr setnam
	jmp open
lese	jsr insert
	jsr diskmach
	lda #"1"
	jsr senduser
	jsr in3
	ldx #0
gettxt	jsr getin
	sta text,x
	inx
	cpx #85
	bcc gettxt
	jsr cloall
	jmp show
vergl	jsr insert
qvergl	jsr diskmach
	lda #"1"
	jsr senduser
	lda #0
	sta vf1
	sta vf2
	jsr in3
	ldx #0
	stx spa
	stx zei
vertxt	inc vf1
	jsr getin
	cmp text,x
	beq equal
	dec vf1
	inc vf2
	stx tmp
	ldx zei
	inx
	inx
	jsr calc
	jsr farbram
	lda spa
	clc
	adc #11
	tay
	lda #1
	sta (farb),y
	ldx tmp
equal	inc spa
	lda spa
	cmp #17
	bcc nix
	inc zei
	lda #0
	sta spa
nix	inx
	cpx #85
	bcc vertxt
	jsr cloall
	jsr auswert
	jsr gettaste
	jmp show
auswert	lda #<vt1
	ldy #>vt1
	jsr strout
	ldx vf1
	jsr x0out
	lda #<vt2
	ldy #>vt2
	jsr strout
	ldx vf2
	jsr x0out
	jmp return
x0out	lda #0
	jmp axout
schr	jsr insert
	jsr diskmach
	lda #"1"
	jsr senduser
	jsr out3
	ldx #0
wrtxt	lda text,x
	jsr bsout
	inx
	cpx #85
	bcc wrtxt
	lda #"2"
	jsr senduser
	jsr cloall
	jmp qvergl
leertest	jsr insert
	jsr diskmach
	lda #"1"
	jsr senduser
	lda #0
	sta vf1
	jsr in3
	ldx #0
	stx spa
	stx zei
nultst	jsr getin
	tay
	beq null
	inc vf1
	stx tmp
	ldx zei
	inx
	inx
	jsr calc
	jsr farbram
	lda spa
	clc
	adc #11
	tay
	lda #1
	sta (farb),y
	ldx tmp
null	inc spa
	lda spa
	cmp #17
	bcc nix2
	inc zei
	lda #0
	sta spa
nix2	inx
	cpx #85
	bcc nultst
	jsr cloall
	jsr return
	lda vf1
	bne data
	lda #<kei
	ldy #>kei
	jsr strout
data	lda #<wol
	ldy #>wol
	jsr strout
	jsr gettaste
	jmp show
loesch	jsr getsure
	bcc na
	jmp clr
na	rts
befehl	jsr disk1
	ldx #25
	stx maxlen
	jsr clrmen
	lda #<bet
	ldy #>bet
	jsr strout
	jsr inform
	jsr open15
	jsr out15
	lda #<latch
	ldy #>latch
	jsr strout
	jsr clrchn
	jsr return
qstatus	lda #">"
	jsr bsout
	jsr in15
dst	jsr getin
	jsr bsout
	cmp #cr
	bne dst
	jsr cloall
	jmp gettaste
status	jsr disk1
	jsr clrmen
	jsr open15
	jmp qstatus
dev	jsr clrmen
	lda #<det
	ldy #>det
	jsr strout
num	lda #<uewa
	ldy #>uewa
	jsr strout
	ldx device
	jsr x0out
nuu	jsr getin
	cmp #cr
	beq aus
	cmp #"+"
	beq hoch
	cmp #"-"
	bne nuu
	dec device
store	lda device
	and #$7
	ora #8
	sta device
	bpl num
hoch	inc device
	bne store
aus	rts
cat	jsr diropen
	jsr in3
	jsr getin
	bit stat
	bne ex
	jsr getin
dipage	jsr return
	lda #0
	sta dirline
	jsr clrmen
gett	ldx #5
	jsr box
	jsr getin
	jsr getin
	beq ex
	jsr getin
	tax
	jsr getin
	jsr axout
	jsr space
line	jsr getin
	beq eol
	ldy stat
	bne ex
	jsr bsout
	bcc line
eol	jsr return
	inc dirline
	lda dirline
	cmp #12
	bcc gett
	lda #<wei
	ldy #>wei
	jsr strout
	jsr clrchn
	lda #0
	sta key
watnu	jsr getin
	beq watnu
	cmp #"\x03"
	beq ed
	jsr in3
	bcc dipage
ex	jsr ed
	jmp gettaste
ed	jmp cloall
box	jsr space
	dex
	bne box
	rts
replace	jsr clrmen
	lda #<ers1
	ldy #>ers1
	jsr strout
	lda #22
	sta maxlen
	jsr inform
	stx maxlen
	txa
	beq warnichts
	lda #<ers2
	ldy #>ers2
	jsr strout
	jsr latch12
	jsr inform
	cpx maxlen
	beq warwas
warnichts	rts
warwas	ldx #-1
	dec maxlen
es1	ldy #-1
	stx tmp
es2	iny
	inx
	lda latch2,y
	cmp text,x
	beq es3
es5	inc tmp
	ldx tmp
	cpx #85
	bcc es1
	jmp show
es3	cpy maxlen
	bcc es2
	ldy #0
	ldx tmp
	inx
es4	lda latch,y
	cmp #"\xa4"
	bne papa
	lda #0
papa	sta text,x
	inx
	iny
	cpy maxlen
	bcc es4
	beq es4
	bne es5
latch12	ldy #0
es6	lda latch,y
	cmp #"\xa4"
	bne es7
	lda #0
es7	sta latch2,y
	dey
	bne es6
	rts
setbig	lda #>vic
	.byt $2c
setsmall	lda #$d8
	sta set+1
	jmp chrset
satz	jsr clrmen
	lda #<setset
	ldy #>setset
	jsr strout
nueize	jsr getin
	cmp #"1"
	beq setbig
	cmp #"2"
	beq setsmall
	bne nueize
druck	jsr aauch
	jsr priopen
	jsr out3
	ldx #0
sl2	ldy #4
	txa
	cmp #85
	bcs out2
sll2	cmp mal17,y
	beq sie2
	dey
	bpl sll2
	bmi nc2
sie2	stx tmp
	jsr return
	ldx #20
	jsr box
	ldx tmp
nc2	lda text,x
	jsr test
	bcc uk2
	lda #"\xa4"
uk2	jsr bsout
	inx
	bne sl2
out2	jsr return
	jmp cloall
aauch	jsr clrmen
	lda #<auch
	ldy #>auch
	jsr strout
	jsr getjn
	bcs sel
	rts
sel	jsr diropen
	jsr in3
	ldx #7
	jsr skip
	ldx #0
getpar	jsr getin
	sta latch,x
	inx
	cpx #24
	bcc getpar
	jsr cloall
	jsr priopen
	jsr out3
	lda #<dd1
	ldy #>dd2
	jsr strout
	ldx #0
namout	lda latch,x
	jsr bsout
	inx
	cpx #18
	bcc namout
	lda #<dd2
	ldy #>dd2
	jsr strout
	lda latch+19
	jsr bsout
	lda latch+20
	jsr bsout
	lda #<dd3
	ldy #>dd3
	jsr strout
	lda latch+22
	jsr bsout
	lda latch+23
	jsr bsout
	jsr return
	jmp cloall
skip	jsr getin
	dex
	bne skip
	rts
cursor	jsr clrmen
	lda #<cut
	ldy #>cut
	jsr strout
	jsr getjn
	bcs caus
	lda #-1
	.byt $2c
caus	lda #0
	sta cuflag
	rts
